
package com.gitee.jmash.oidc.oauth2.utils;

import org.eclipse.microprofile.jwt.JsonWebToken;
import com.gitee.jmash.common.utils.UUIDUtil;
import com.gitee.jmash.rbac.entity.TokenEntity;
import com.gitee.jmash.rbac.utils.TokenUtil;
import io.smallrye.jwt.build.Jwt;

/** OIDC id_token Util. */
public class IdTokenUtil {

  /** Create OIDC id_token . */
  public static String createIdToken(TokenEntity token) {
    String principalName = UUIDUtil.uuid32(token.getUserId());
    JsonWebToken webToken =
        TokenUtil.createJsonWebToken(token.getIssuer(), principalName, token.getUnifiedId(),
            token.getStorage(), token.getClientId(), token.getSubject(), token.getScope());
    String accessToken = Jwt.claims(webToken).innerSign().encrypt();
    return accessToken;
  }
}
